package com.xiangxiao.rpan.storage.service;

import com.xiangxiao.rpan.storage.dto.StorageSourceAllParamDTO;
import com.xiangxiao.rpan.storage.entity.StorageSourceConfig;
import com.xiangxiao.rpan.storage.enums.StorageTypeEnum;
import org.springframework.stereotype.Service;

import java.util.Collection;
import java.util.List;

/**
 * @auther xiangxiao
 * @email 573768011@qq.com
 * @data 2023/10/27 15:22
 */
@Service
public interface StorageSourceConfigService {

  /**
   * 将存储源所有参数转换成指定存储类型的参数对象列表
   * @param   storageId
   *          存储源 ID
   * @param   storageType
   *          存储源类型
   * @param   storageSourceAllParam
   *          存储源所有参数
   */
  List<StorageSourceConfig> toStorageSourceConfigList(Integer storageId, StorageTypeEnum storageType, StorageSourceAllParamDTO storageSourceAllParam);

  /**
   * 批量保存
   * @param   storageId
   *          存储源 ID
   * @param   configList
   *          实体对象集合
   */
  void saveBatch(Integer storageId, Collection<StorageSourceConfig> configList);


  /**
   * 根据存储源 id 删除所有设置
   * @param   storageId
   *          存储源 ID
   */
  int deleteByStorageId(Integer storageId);
}
